Streaming media systems such as Video on Demand (VoD) provide streaming media to a viewer. Streaming media may be a movie, television show or other multi-media information. Streaming media may be transported over a variety of mediums such as coaxial cable or satellite. Further, streaming media may be sent in a variety of formats such as MPEG over the Internet. Regardless of the format in which the streaming media is transmitted, it will be broken up into “packets”. Each packet provides a portion of the transmission.
In order for a receiver of the transmission (e.g. a digital television) to properly decode and display the transmission, the packets must arrive in order and on time. Unfortunately, this is not always the case. As packets of a transmission may traverse different network paths from transmitter to receiver, the original timing among the packets may be altered due to the different delay of each network path or router's internal buffering of the same network path. The variation of spacing between packets is referred to as jitter. A more precise definition of jitter is provided by the International Telecommunication Union (ITU), namely:                Jitter: Short-term variations of the significant instants of a digital signal from their ideal positions in time.        
When a real time application, such as a digital television, receives packets of information, the packets are displayed as they are received. However, if a new packet arrives while previous packets are still being displayed, it is necessary to buffer the new packet. Buffering requires the use of a high speed storage device, which adds to the cost of the display device. Conversely, if a packet arrives too late, there is an interruption in the display of the transmission, which is obvious and annoying to the viewer.
To add further complexity, a transmission may contain multiple “streams” of information, for example one stream for each movie and one stream for each set of commercials. The combining of multiple streams into a single transmission is known as multiplexing. By its very nature, multiplexing introduces jitter. By placing packets from one stream between packets from another, time delays and thus the possibility of jitter, are introduced. Further, jitter may be introduce in non-multiplexed environments if packets are not managed properly.
There is thus a need for a simple and cost effective solution to reduce jitter in a streaming media environment. The present invention addresses this need.